using System;

namespace CriticalSystems.Instrumentation.Internal
{
    [Flags]
    public enum LoggingFlags
    {
        None                            = 0,
        LogFirstAbnormalExit            = 0x00000001,
        LogInformation                  = 0x00000010,
        LogWarning                      = 0x00000020,
        LogException                    = 0x00000040,
        LogError                        = 0x00000080,

        LogSubsystemEntry               = 0x00000100,
        LogSubsystemNormalExit          = 0x00000200,
        LogSubsystemAbnormalExit        = 0x00000400,

        LogThreadEntry                  = 0x00001000,
        LogThreadNormalExit             = 0x00002000,
        LogThreadAbnormalExit           = 0x00004000,

        LogModuleEntry                  = 0x00010000,
        LogModuleNormalExit             = 0x00020000,
        LogModuleAbnormalExit           = 0x00040000,

        LogExternalModuleEntry          = 0x00100000,
        LogExternalModuleNormalExit     = 0x00200000,
        LogExternalModuleAbnormalExit   = 0x00400000,

        LogComponentEntry               = 0x01000000,
        LogComponentNormalExit          = 0x02000000,
        LogComponentAbnormalExit        = 0x04000000,

        LogFunctionEntry                = 0x10000000,
        LogFunctionNormalExit           = 0x20000000,
        LogFunctionAbnormalExit         = 0x40000000,
    }
}